0 REM MC GRAPHICS (D. SPRUYT, 1985) : 1 : 2 REM 11 STATEMENTS, 1 FUNCTION 3 : 4 REM KEYWORD CHARACTERS: 58 5 : 6 REM KEYWORD ROUTINE LINE SER # 7 REM S/MCON HO 11068 149 8 REM S/MSET MCSET 10746 150 9 REM S/HOFF MCRSTR 11154 151 10 REM S/MDRAW MCDRA 10472 152 11 REM S/MRECT MCREC 11270 153 12 REM S/MCIRCLE MCCIR 11362 154 13 REM S/MTEXT MCTXT 11784 155 14 REM S/HCLR HCL 11106 156 15 REM S/MCOLOR MCCOL 10954 157 16 REM S/MBOX MCBOX 11320 158 17 REM S/MDISC MCDIS 11356 159 18 REM F/MCHK( MCHK 11136 160 19 : 20 REM ================================ 21 : 145 .ASC "MCO[206]MSE[212]HOF[198]" 146 .ASC "MDRA[215]MREC[212]MCIRCL[197]" 147 .ASC "MTEX[212]HCL[210]MCOLO[210]" 148 .ASC "MBO[216]MDIS[195]" 622 .ASC "MCHK":.BYTE $80+"(" 1145 .WORD HO-1,MCSET-1,MCRSTR-1 1146 .WORD MCDRA-1,MCREC-1,MCCIR-1 1147 .WORD MCTXT-1,HCL-1,MCCOL-1 1148 .WORD MCBOX-1,MCDIS-1 1622 .WORD MCHK-1 10472 MCDRA LDA #0 10474 STA T3 10476 JSR MCGET5 10478 MDR1 LDA #0 10480 STA $AB 10482 STA $AE 10484 LDA T5 10486 SEC 10488 SBC $A6 10490 BCS MDR2 10492 EOR #$FF 10494 ADC #1 10496 DEC $AE 10498 MDR2 STA $AD 10500 LDA $21 10502 SEC 10504 SBC $A8 10506 BCS MDR3 10508 EOR #$FF 10510 ADC #1 10512 DEC $AB 10514 MDR3 STA $AA 10516 LDA $AD 10518 CMP $AA 10520 BCS MDR4 10522 LDA $AA 10524 MDR4 STA $AF 10526 LDA #0 10528 STA $A3 10530 LDA $AA 10532 STA $A4 10534 JSR MCDIV 10536 LDA $A3 10538 STA $A9 10540 LDA $A4 10542 STA $AA 10544 LDA #0 10546 STA $A3 10548 LDA $AD 10550 STA $A4 10552 JSR MCDIV 10554 LDA $A3 10556 STA $AC 10558 LDA $A4 10560 STA $AD 10562 LDA #$80 10564 STA $A7 10566 STA $A5 10568 LDX #$A9 10570 JSR MCNEG 10572 LDX #$AC 10574 JSR MCNEG 10576 LDX $AF 10578 MDR5 LDA $A8 10580 STA $B5 10582 LDA $A6 10584 STA $B4 10586 LDA $B0 10588 JSR MCPLO 10590 LDA $A7 10592 CLC 10594 ADC $A9 10596 STA $A7 10598 LDA $A8 10600 ADC $AA 10602 STA $A8 10604 LDA $A5 10606 CLC 10608 ADC $AC 10610 STA $A5 10612 LDA $A6 10614 ADC $AD 10616 STA $A6 10618 DEX 10620 CPX #$FF 10622 BNE MDR5 10624 RTS 10626 ; 10628 MCPLO STA $A4 10630 STA T4 10632 LDA T3 10634 BEQ MCP2 10636 BMI MCP1 10638 JSR MCP2 10640 LDA $B4 10642 CLC 10644 ADC T6 10646 STA $B4 10648 LDA T4 10650 STA $A4 10652 JMP MCP2 10654 MCP1 JSR MCP2 10656 LDA $B5 10658 CLC 10660 ADC T6 10662 STA $B5 10664 LDA T4 10666 STA $A4 10668 MCP2 LDA $B5 10670 CMP #$A0 10672 BCC MCP4 10674 MCP3 RTS 10676 MCP4 LDA $B4 10678 CMP #$C8 10680 BCS MCP3 10682 TYA 10684 PHA 10686 JSR PTR19 10688 LDA $B5 10690 AND #3 10692 TAY 10694 LDA MCTBL2,Y 10696 PHA 10698 LDA $B5 10700 LSR 10702 PHP 10704 LSR 10706 LDA $A4 10708 BCS MCP5 10710 ASL 10712 ASL 10714 ASL 10716 ASL 10718 MCP5 PLP 10720 BCS MCP6 10722 ASL 10724 ASL 10726 MCP6 STA $A4 10728 PLA 10730 LDY #0 10732 JSR ROPEN 10734 AND ($19),Y 10736 ORA $A4 10738 STA ($19),Y 10740 JSR RCLOSE 10742 JMP MCR5 10744 ; 10746 MCSET LDA #0 10748 STA T3 10750 JSR MCG1 10752 STA $B5 10754 JSR MCGET 10756 STA $B4 10758 JSR MCGET 10760 JMP MCPLO 10762 ; 10764 MCGET JSR $AEFD 10766 MCG1 JSR $B79E 10768 TXA 10770 RTS 10772 ; 10774 MCDIV LDX #$10 10776 LDA #0 10778 ASL $A4 10780 MCDV1 ROL 10782 BCS MCDV3 10784 CMP $AF 10786 BCC MCDV2 10788 SBC $AF 10790 MCDV2 ROL $A3 10792 ROL $A4 10794 DEX 10796 BNE MCDV1 10798 RTS 10800 MCDV3 SBC $AF 10802 SEC 10804 BCS MCDV2 10806 ; 10808 MCNEG LDA 2,X 10810 BPL MCN1 10812 SEC 10814 LDA 0,X 10816 EOR #$FF 10818 ADC #0 10820 STA 0,X 10822 LDA 1,X 10824 EOR #$FF 10826 ADC #0 10828 STA 1,X 10830 MCN1 RTS 10832 ; 10834 PTR19 LDA $B4 10836 LSR 10838 LSR 10840 AND #$FE 10842 TAY 10844 LDA MCTBL1,Y 10846 STA $19 10848 LDA MCTBL1+1,Y 10850 STA $1A 10852 LDA $B4 10854 AND #7 10856 STA $A3 10858 LDA $B5 10860 AND #$FC 10862 ASL 10864 BCC P19R1 10866 INC $1A 10868 P19R1 CLC 10870 ORA $A3 10872 ADC $19 10874 STA $19 10876 BCC P19R2 10878 INC $1A 10880 P19R2 RTS 10882 ; 10884 MCREA LDA $B4 10886 CMP #$C8 10888 BCC MCR2 10890 MCR1 LDA #$FF 10892 RTS 10894 MCR2 LDA $B5 10896 CMP #$A0 10898 BCS MCR1 10900 TYA 10902 PHA 10904 JSR PTR19 10906 LDY #0 10908 LDA $B5 10910 LSR 10912 PHP 10914 LSR 10916 JSR ROPEN 10918 LDA ($19),Y 10920 JSR RCLOSE 10922 BCS MCR3 10924 LSR 10926 LSR 10928 LSR 10930 LSR 10932 MCR3 PLP 10934 BCS MCR4 10936 LSR 10938 LSR 10940 MCR4 AND #3 10942 MCR5 STA $A3 10944 PLA 10946 TAY 10948 LDA $A3 10950 MCR6 RTS 10952 ; 10954 MCCOL JSR MCG1 10956 STA $A7 10958 JSR MCGET ; 10960 STA $A8 10962 JSR MCGET 10964 SEC 10966 SBC $A7 10968 BCC MCR6 10970 STA $A6 10972 JSR MCGET 10974 SEC 10976 SBC $A8 10978 BCC MCR6 10980 STA $A5 10982 JSR MCGET 10984 STA $D021 10986 JSR MCGET 10988 ASL 10990 ASL 10992 ASL 10994 ASL 10996 STA $A9 10998 JSR MCGET 11000 AND #$0F 11002 ORA $A9 11004 STA $A9 11006 JSR MCGET 11008 STA $AA 11010 LDA #0 11012 STA $19 11014 LDA #$D8 11016 STA $1A 11018 LDY $A8 11020 MCC1 DEY 11022 BMI MCC2 11024 JSR ADD19 11026 JMP MCC1 11028 MCC2 LDA $19 11030 CLC 11032 ADC $A7 11034 STA $19 11036 BCC MCC3 11038 INC $1A 11040 MCC3 LDY $A6 11042 MCC4 LDA $AA 11044 STA ($19),Y 11046 JSR ROPEN 11048 LDA $A9 11050 STA ($19),Y 11052 JSR RCLOSE 11054 DEY 11056 BPL MCC4 11058 JSR ADD19 11060 DEC $A5 11062 BPL MCC3 11064 RTS 11066 ; 11068 HO LDA $D011 11070 ORA #$20 11072 STA $D011 11074 LDA $D016 11076 ORA #$10 11078 STA $D016 11080 LDA #$68 11082 STA $D018 11084 LDA $DD00 11086 AND #$FC 11088 STA $DD00 11090 LDA $D021 11092 STA MCUVID 11094 LDA $0286 11096 STA MCUVID+1 11098 LDA $D018 11100 STA MCUVID+2 11102 JMP MCFXER 11104 ; 11106 HCL LDA #0 11108 STA $19 11110 LDA #$E0 11112 STA $1A 11114 LDA #0 11116 TAY 11118 LDX #$20 11120 HCL1 STA ($19),Y 11122 INY 11124 BNE HCL1 11126 INC $1A 11128 DEX 11130 BNE HCL1 11132 RTS 11134 ; 11136 MCHK JSR MCG1 11138 STA $B5 11140 JSR MCGET 11142 STA $B4 11144 JSR $AEF7 11146 JSR MCREA 11148 TAY 11150 JMP $B3A2 11152 ; 11154 MCRSTR SEI 11156 LDA EVTMP 11158 LDY EVTMP+1 11160 STA $300 11162 STY $301 11164 CLI 11166 LDA $D011 11168 AND #$DF 11170 STA $D011 11172 LDA $D016 11174 AND #$EF 11176 STA $D016 11178 LDA $DD00 11180 ORA #3 11182 STA $DD00 11184 LDA MCUVID 11186 STA $D021 11188 LDA MCUVID+1 11190 STA $0286 11192 LDA MCUVID+2 11194 STA $D018 11196 RTS 11198 ; 11200 MCGET5 JSR MCG1 11202 STA $1D 11204 STA $A8 11206 JSR MCGET 11208 STA $1E 11210 STA $A6 11212 JSR MCGET 11214 STA $1F 11216 STA $21 11218 JSR MCGET 11220 STA $20 11222 STA T5 11224 JSR MCGET 11226 STA $B0 11228 RTS 11230 ; 11232 MCFIX5 JSR MCGET5 11234 LDA $1F 11236 CMP $1D 11238 BCS MCF1 11240 LDX $1D 11242 STA $1D 11244 STA $A8 11246 STX $1F 11248 STX $21 11250 MCF1 LDA $20 11252 CMP $1E 11254 BCS MCF2 11256 LDX $1E 11258 STA $1E 11260 STA $A6 11262 STX $20 11264 STX $T5 11266 MCF2 RTS 11268 ; 11270 MCREC JSR MCFIX5 11272 LDA #$F1 11274 STA T3 11276 LDA $1D 11278 STA $21 11280 LDA $1F 11282 SEC 11284 SBC $1D 11286 STA T6 11288 JSR MDR1 11290 LDA #1 11292 STA T3 11294 LDA $1E 11296 STA $A6 11298 STA T5 11300 LDA $20 11302 SEC 11304 SBC $1E 11306 STA T6 11308 LDA $1D 11310 STA $A8 11312 LDA $1F 11314 STA $21 11316 JMP MDR1 11318 ; 11320 MCBOX JSR MCFIX5 11322 LDA #0 11324 STA T3 11326 MCB1 LDA $1E 11328 STA $A6 11330 STA T5 11332 LDA $1D 11334 STA $21 11336 LDA $1F 11338 STA $A8 11340 JSR MDR1 11342 INC $1E 11344 LDY $1E 11346 CPY $20 11348 BEQ MCB1 11350 BCC MCB1 11352 RTS 11354 ; 11356 MCDIS LDA #1 11358 .BYTE $2C 11360 ; 11362 MCCIR LDA #0 11364 STA 9 11366 LDY #0 11368 STY T3 11370 JSR MCG1 11372 STX $A5 11374 JSR MCGET 11376 STX $A6 11378 JSR MCGET 11380 STX $A8 11382 JSR $AEFD 11384 JSR $AD9E 11386 LDX #MYMULT 11390 JSR $BBD7 11392 JSR $AEFD 11394 JSR $AD9E 11396 LDX #MXMULT 11400 JSR $BBD7 11402 JSR MCGET 11404 STX $B0 11406 LDA #0 11408 STA $A7 11410 STA $AD 11412 STA $AE 11414 MCD1 LDX $AE 11416 LDA $A7 11418 ASL 11420 BCC MCD2 11422 INX 11424 MCD2 SEC 11426 ADC $AD 11428 BCC MCD3 11430 INX 11432 MCD3 STA $AB 11434 STX $AC 11436 SEC 11438 SBC $A8 11440 BCS MCD4 11442 DEX 11444 CLC 11446 MCD4 SBC $A8 11448 BCS MCD5 11450 DEX 11452 MCD5 STA $A9 11454 STX $AA 11456 JSR MCMUL 11458 LDA 9 11460 BNE MCD11 11462 LDY #0 11464 STY T6 11466 MCD6 LDA $A5 11468 LDX MXTYPE,Y 11470 PHP 11472 LDX MXADDS,Y 11474 PLP 11476 BEQ MCD7 11478 SEC 11480 SBC 0,X 11482 JMP MCD8 11484 MCD7 CLC 11486 ADC 0,X 11488 MCD8 STA $B5 11490 LDA $A6 11492 LDX MYTYPE,Y 11494 PHP 11496 LDX MYADDS,Y 11498 PLP 11500 BEQ MCD9 11502 SEC 11504 SBC 0,X 11506 JMP MCD10 11508 MCD9 CLC 11510 ADC 0,X 11512 MCD10 STA $B4 11514 LDA $B0 11516 JSR MCPLO 11518 LDY T6 11520 INY 11522 STY T6 11524 CPY #8 11526 BNE MCD6 11528 JMP MCD17 11530 MCD11 LDY #0 11532 STY T6 11534 LDY #$0F 11536 MCD12 LDA $A3,Y 11538 STA MCBUF1,Y 11540 DEY 11542 BPL MCD12 11544 MCD13 LDA $A5 11546 LDY T6 11548 CLC 11550 LDX MCTBL3,Y 11552 ADC 0,X 11554 STA $A8 11556 LDA $A5 11558 SEC 11560 LDX MCTBL3,Y 11562 SBC 0,X 11564 STA $21 11566 TYA 11568 AND #1 11570 BNE MCD14 11572 LDA $A6 11574 CLC 11576 LDX MCTBL4,Y 11578 ADC 0,X 11580 JMP MCD15 11582 MCD14 LDA $A6 11584 SEC 11586 LDX MCTBL4,Y 11588 SBC 0,X 11590 MCD15 STA $A6 11592 STA T5 11594 JSR MDR1 11596 LDY #$0F 11598 MCD16 LDA MCBUF1,Y 11600 STA $A3,Y 11602 DEY 11604 BPL MCD16 11606 LDY T6 11608 INY 11610 STY T6 11612 CPY #4 11614 BNE MCD13 11616 MCD17 LDA $AB 11618 STA $AD 11620 LDA $AC 11622 STA $AE 11624 INC $A7 11626 LDA $AC 11628 BPL MCD19 11630 EOR #$FF 11632 TAX 11634 LDA $AB 11636 EOR #$FF 11638 CLC 11640 ADC #1 11642 BCC MCD18 11644 INX 11646 MCD18 JMP MCD20 11648 MCD19 TAX 11650 LDA $AB 11652 MCD20 STX T2 11654 STA 7 11656 LDA $AA 11658 BPL MCD22 11660 EOR #$FF 11662 TAX 11664 LDA $A9 11666 EOR #$FF 11668 CLC 11670 ADC #1 11672 BCC MCD21 11674 INX 11676 MCD21 JMP MCD23 11678 MCD22 TAX 11680 LDA $A9 ; 11682 MCD23 STA $14 11684 STX $15 11686 LDA T2 11688 CMP $15 11690 BCC MCD24 11692 LDA 7 11694 CMP $14 11696 BEQ MCD24 11698 BCC MCD24 11700 LDA $A9 11702 STA $AD 11704 LDA $AA 11706 STA $AE 11708 DEC $A8 11710 MCD24 LDA $A8 11712 CMP $A7 11714 BCC MCD25 11716 JMP MCD1 11718 MCD25 RTS 11720 ; 11722 MCMUL LDY $A7 11724 JSR MCMY 11726 STX $1E 11728 LDY $A8 11730 JSR MCMY 11732 STX $1D 11734 LDY $A7 11736 JSR MCMX 11738 STX $1F 11740 LDY $A8 11742 JSR MCMX 11744 STX $20 11746 RTS 11748 ; 11750 MCMX SEC 11752 .BYTE $24 11754 MCMY CLC 11756 PHP 11758 JSR $B3A2 11760 PLP 11762 BCC MCM1 11764 LDY #>MXMULT 11766 LDA #MYMULT 11774 MCM2 JSR $BA28 11776 JSR $B1BF 11778 LDX $65 11780 RTS 11782 ; 11784 MCTXT LDA #0 11786 STA T3 11788 JSR MCG1 11790 STX $A7 11792 JSR MCGET 11794 STX $A8 11796 JSR MCGET 11798 STX $A6 11800 JSR MCGET 11802 STX $A5 11804 JSR MCGET 11806 STX $B0 11808 JSR $AEFD 11810 JSR $AD9E 11812 JSR $B6A3 11814 STA $AD 11816 LDY #0 11818 MCT1 STY $AE 11820 LDA ($22),Y 11822 CMP #$40 11824 BCC MCT2 11826 SBC #$40 11828 CMP #$80 11830 BCC MCT2 11832 SBC #$40 11834 MCT2 LDY #0 11836 STY $AB 11838 LDY #3 11840 MCT3 ASL 11842 ROL $AB 11844 DEY 11846 BNE MCT3 11848 STA $14 11850 LDA $AB 11852 CLC 11854 ADC #$D0 11856 STA $15 11858 SEI 11860 LDA 1 11862 AND #$FB 11864 STA 1 11866 LDY #7 11868 MCT4 LDA ($14),Y; CHAR DEFINITION 11870 STA MCBUF2,Y 11872 DEY 11874 BPL MCT4 11876 LDA 1 11878 ORA #4 11880 STA 1 11882 CLI 11884 LDA $A8 11886 STA $B4 11888 LDA $A6 11890 STA $A9 11892 LDA $A5 11894 STA $AA 11896 LDA #0 11898 STA $AB 11900 MCT5 LDA #7 11902 STA $AC 11904 LDA $A7 11906 STA $B5 11908 LDY $AB 11910 LDA MCBUF2,Y 11912 MCT6 ASL 11914 BCC MCT8 11916 PHA 11918 MCT7 LDA $B0 11920 JSR MCPLO 11922 INC $B5 11924 DEC $A9 11926 BNE MCT7 11928 JMP MCT10 11930 MCT8 PHA 11932 MCT9 LDA #0 11934 JSR MCPLO 11936 INC $B5 11938 DEC $A9 11940 BNE MCT9 11942 MCT10 LDA $A6 11944 STA $A9 11946 PLA 11948 DEC $AC 11950 BPL MCT6 11952 INC $B4 11954 DEC $AA 11956 BNE MCT5 11958 LDA $A5 11960 STA $AA 11962 LDY $AB 11964 INY 11966 STY $AB 11968 CPY #8 11970 BNE MCT5 11972 LDA $A6 11974 ASL 11976 ASL 11978 ASL 11980 CLC 11982 ADC $A7 11984 STA $A7 11986 LDY $AE 11988 INY 11990 CPY $AD 11992 BEQ A19 11994 JMP MCT1 11996 ; 11998 ROPEN PHA 12000 SEI 12002 LDA 1 12004 AND #$F8 12006 STA 1 12008 PLA 12010 RTS 12012 ; 12014 RCLOSE PHA 12016 LDA 1 12018 ORA #7 12020 STA 1 12022 CLI 12024 PLA 12026 RTS 12028 ; 12030 ADD19 LDA $19 12032 CLC 12034 ADC #$28 12036 STA $19 12038 BCC A19 12040 INC $1A 12042 A19 RTS 12044 ; 12046 MCTBL1 =* 12048 .WORD $E000 12050 .WORD $E140 12052 .WORD $E280 12054 .WORD $E3C0 12056 .WORD $E500 12058 .WORD $E640 12060 .WORD $E780 12062 .WORD $E8C0 12064 .WORD $EA00 12066 .WORD $EB40 12068 .WORD $EC80 12070 .WORD $EDC0 12072 .WORD $EF00 12074 .WORD $F040 12076 .WORD $F180 12078 .WORD $F2C0 12080 .WORD $F400 12082 .WORD $F540 12084 .WORD $F680 12086 .WORD $F7C0 12088 .WORD $F900 12090 .WORD $FA40 12092 .WORD $FB80 12094 .WORD $FCC0 12096 .WORD $FE00 12098 ; 12100 MCTBL2 .BYTE $3F,$CF,$F3,$FC 12102 ; 12104 MCTBL3 .BYTE $1D,$1D,$1E,$1E 12106 ; 12108 MCTBL4 .BYTE $1F,$1F,$20,$20 12110 ; 12112 MXMULT *=*+6 12114 ; 12116 MYMULT *=*+6 12118 ; 12120 MXTYPE .BYTE 0,1,0,1,0,1,0,1 12122 ; 12124 MYTYPE .BYTE 0,0,1,1,0,0,1,1 12126 ; 12128 MXADDS =* 12130 .BYTE $1D,$1D,$1D,$1D 12132 .BYTE $1E,$1E,$1E,$1E 12134 ; 12136 MYADDS =* 12138 .BYTE $1F,$1F,$1F,$1F 12140 .BYTE $20,$20,$20,$20 12142 ; 12144 MCBUF1 *=*+$10 12146 MCBUF2 *=*+8 12148 ; 12150 *=*+(*&1) 12152 EVTMP .WORD $E38B 12154 ; 12156 MCFXER SEI 12158 LDA $300 12160 LDY $301 12162 STA EVTMP 12164 STY EVTMP+1 12166 LDA #MCERR 12170 STA $300 12172 STY $301 12174 CLI 12176 RTS 12178 ; 12180 MCERR JSR MCRSTR 12182 JMP ($300) 12184 ; 12186 MCUVID *=*+3 12188 ;